
package com.javaleague.persistencia.mysql;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.javaleague.Constantes;
import java.sql.PreparedStatement;
import com.javaleague.informacion.ErrorGeneral;
import com.javaleague.informacion.InformacionGeneral;

/**
 * @author TaixMiguel
 */
public class DAODeleteUser {
    public static boolean eliminarUsuario(int id, int token, String pass, String name, String IP) {
        Connection conexion = null;
        PreparedStatement pst = null;
        ResultSet rs = null;
        boolean resultado = false;
        
        conexion = Conexion.getConexion();
        try {
            pst = conexion.prepareStatement("SELECT pwdU,tokenUser FROM usuario WHERE idU= ?");
            pst.setInt(1, id);
            
            rs = pst.executeQuery();
            if (rs.next()) {                
                if ( pass.equals(rs.getString("pwdU")) && token == rs.getInt("tokenUser") ) {
                    pst = conexion.prepareStatement("DELETE FROM `javaleague`.`usuario` WHERE `usuario`.`idU` = ?");
                    pst.setInt(1, id);
                    pst.execute();
                    
                    InformacionGeneral.guardarLog(Object.class.getName(), Constantes.Informacion.InfoMensajes.BorradoUsuario, name, IP);
                    resultado = true;
                } else
                    InformacionGeneral.guardarLog(Object.class.getName(), Constantes.Informacion.InfoMensajes.IntentoBorradoUsuario, name, IP);
            }            
        } catch (SQLException ex) {
            ErrorGeneral.guardarLog(Object.class.getName(), Constantes.Informacion.ErrorMensajes.SQLException, ex);
        } catch (Exception ex) {     
            ErrorGeneral.guardarLog(Object.class.getName(), Constantes.Informacion.ErrorMensajes.Exception, ex);
        } finally {
            try {
                conexion.close();
            } catch (SQLException ex) {
                ErrorGeneral.guardarLog(Object.class.getName(), Constantes.Informacion.ErrorMensajes.SQLExceptionClose, ex);
            }
        }
        
        return resultado? true:false;
    }
}